<!DOCTYPE html>
<html>
<head><meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Puppy Linux Supported Architectures</title>
</head>

<body>
<textarea theme="cerulean" readonly style="width:100%;" rows="40" cols="100">
## Puppy Linux Supported Architectures

Puppy Linux as of November 2015 supports both x86 and x86_64 CPU architectures.
Generally, these are manufactured by Intel and AMD and some smaller companies
such as VIA and earlier on Cyrix.

Puppy will not (likely) run on an old 486, or even an old PI. A PII will 
struggle with a modern Puppy. Some later PIII and Athlon machines should cope.

If you are finding it tough deciding which Puppy to download for your machine
read on.

### x86

Technically speaking, any Intel 8086 processor is x86! This includes the old
286, 386 and 486 series however it wasn't until the 386 that "32 bit" registers
came into effect.

We often refer to "32 bit" or "64 bit". Generally when we refer to "x86" we are
talking about "32 bit". A _32 bit_ operating system will run on an _x86_ or
an _x86_64_ processor but a _64 bit_ operating system will **not** run on an
_x86_ processor. If you are unsure what type of processor you have a _32 bit_
Puppy is a safe bet and once running there are various ways to determine the
architecture of your processor.

Here is a simple test we have devised if you are running Linux:

`grep -o -w -q 'lm' /proc/cpuinfo && echo "64 bit" || echo "32 bit"`
     
That test will return `64 bit` if your processor is capable or `32 bit`
otherwise. 

#### To PAE or not to PAE ; That is the question!

PAE (Physical Address Extension) is a patch to the Linux Kernel. Normally,
a 32 bit operating system is limited to "seeing" 4 GB of RAM. When a
kernel is configured there is an option to enable higher memory. This switches
on the PAE patch and subsequently the operating system is capable of "seeing"
up to 64 GB of RAM, however, any one process is still restricted to using up 
to 4 GB of RAM.

Some 32 bit processors have not got PAE capability set in their instructions.
It is a limited few but a notable one is the Intel Centrino with 400MHz FSB.
Some quite old processors do not support PAE too.

A similar chack to the 64 bit test above can be performed to determine
your processors PAE capabily:

`grep -o -w -q 'pae' /proc/cpuinfo && echo "PAE Supported" || echo "PAE Unsupported"`

This will return `PAE Supported` if your processor supports PAE; 
`PAE Unsupported` if your processor does not. 

If you have less than 4GB of RAM there isn't much point in using a PAE enabled
operating system, however in most cases it will work fine anyway.

#### i386, i486, i586 and i686

Briefly, these architectures correspond with the following CPUs:

  * i386 – Intel 386 and AMD 386 CPUs
  
  * i486 – Intel 486 and AMD 486
  
  * i586 – The First Intel Pentiums MMX, AMD-K5
  
  * i686 – Pentium Pro, AMD-K6
  
Since around 2009 Puppy's kernels have been compiled with Pentium Pro support
making the operating system "i686". Most software is compiled i686 as well.
  
  

### x86_64

**x86_64** is just x86 with 64 bit addressing capability. This gives
the operating system access to 64 GB of RAM natively.

AMD were the first to come up with a 64 bit processor with their Opteron line
in 2003. In 2004 Intel released its first 64 bit processor "Nocona".

In summary:

  * AMD Opteron, Athlon X2 and later are 64 bit processors
  
  * Intels Pentium 4 Prescott gain 64 bit support in 2004.
    Pentium D and later are 64 bit processors with the exception of some
    Atom processors ("Diamondville" and some others).

#### x86_64, ia64, amd64 ; I've seen all these, what's up with that?

Firstly, _x86_64 and _amd64_ are one and the same. Maybe it's because AMD got
there first that "amd64" caught on.

_ia64_ is a completely different instruction set for Intel Itanium processors
which Puppy _does not_ support.

### BIOS and UEFI

BIOS (Basic Input/Output System) based computers have been around for a long
time. Most people familiar with computers have been into the BIOS setup at some
point to change a setting such as boot device order or the system time.

UEFI (Unified Extensible Firmware Interface) is a _standard_ and is 
(however much a pain it is) necessary to help address the limitation
of BIOS/MBR systems limit of support for hard disks above 2 TB. MBR can 
not work on large disks. It is fairly inexpensive these days to replace your
current harddisk with a 4 TB or even 6 TB.


#### My MAC has EFI; is that the same as UEFI?

No.

#### UEFI and Puppy

At the time of writing, Puppy _does not_ support UEFI. However, most Windows™
computers come with "legacy Bios" which you can enter to enable booting a
Puppy boot media (optical or USB). Secure Boot must be turned off and you
must make sure that the computer has fully shut down and not in a hibernated
state.

Puppy does intend to support UEFI in the near future.

### Conclusion

Hopefully the above information has helped you out with your decision. If not,
please consider this: The only stupid question is the one that isn't asked!
Feel free to "ask away" on the 
[Puppy Linux Discussion Forum](http://murga-linux.com/puppy).

### References
[Computer Hope](http://www.computerhope.com/jargon/num/32bit.htm)

[Techopedia](https://www.techopedia.com/definition/5334/x86-architecture)

[Internet News](http://www.internetnews.com/ent-news/article.php/3518781)

[PCWorld](http://www.pcworld.com/article/116631/article.html)

[Atom Processors](https://en.wikipedia.org/wiki/List_of_Intel_Atom_microprocessors)

[What is UEFI](http://windows.microsoft.com/en-AU/windows-8/what-uefi)

[About UEFI](http://www.uefi.org/about)



</textarea>

<div id="footer"></div>
<script src="v/chibi.min.js"></script>
<script src="c/puppy.js"></script>
<script src="v/0.2/strapdown.js"></script>
</body>
</html>
